001.Agentic RAG

传统的RAG

RAG: Retrieval-Augmented Generation 检索增强生成。RAG 通过结合 LLMS 的内在知识和外部数据库的非参数化数据,提高了模型在知识密集型任务中的准确性和可信度。

Pasted image 20260408085712.png

Pasted image 20260410081736.png

RAG 项目做到这几点

  1. 可以加载、解析文字和图片的 RAG;
  2. 拥有 NLTK 语义 Chunker 优化的 RAG;
  3. 可以分布式向量数据库的 RAG;
  4. 实现多路由、混合检索的 RAG;
  5. 多结果 ReRankers(重排模型)的 RAG;
  6. 和 Agent 整合的 RAG;
  7. 拥有 RAGAs(自我评估)的 RAG;

Agentic RAG

RAG + Agents= Agentic RAG。

Agentic RAG 描述了一种基于 Al Agents 的 RAG 实现。具体来说,它将 Al Agents 整合到 RAG 流程中,协调其组件并执行除简单信息检索和生成之外的其他操作,以克服传统 RAG 的局限性。

Agentic RAG 将 RAG 从一个“信息检索增强工具”彻底提升为一个“自主问题解决框架”。它为 RAG 注入了”灵魂”,使其能够处理动态、开放式、需要多步推理的复杂现实世界任务,这是之前所有阶段都无法企及的高度。

传统 RAG vs Agentic RAG

Pasted image 20260408090539.png

提升数据质量优化

文本切割优化

Pasted image 20260409213120.png

元数据增强优化

多模态数据优化

Deepseek.OCR
Dots.OCR
Dolphin
GME-Qwen-VL 等等

Pasted image 20260409214239.png

提升索引优化

数据库索引优化

提升搜索质量优化

混合检索优化

检索结果评估优化

指标类别 指标名称 适用场景 评估重点
RAG指标 上下文精度 检索精准度 检索结果中相关片段的比例
RAG指标 上下文召回率 检索全面性 检索覆盖答案所需信息的比例
RAG指标 上下文相关度 检索的相关性 检索结果和用户问题的相关性评估
RAG指标 忠实度 生成内容质量 答案与检索内容的一致性
RAG指标 回答相关性 生成内容质量 答案与问题的相关性
所有指标 答案准确性 生成答案的准确率 答案与给定问题的参考标准答案之间的一致性

提升回答质量和速度优化

上下文工程优化

上下文工程:LLM 失败的原因有以下两个:1、底层 LLM 能力不够;2、“正确”的上下文没有传递给 LLM。
上下文工程是以正确的格式提供正确的信息和工具,以便 LLM 能够完成任务。这是人工智能工程师的头号工作。

Tool 和 Agent

Tool(工具)

定义与功能

通过这种分工,LangChain 实现了模块化与智能化的结合:Tool 提供基础能力,Agent 赋予系统自主决策的灵活性,两者协同完成从简单查询到复杂问题求解的多样化任务。

用户输入
 ↓
Agent(解析意图,生成计划)
 ↓
选择工具 -> 调用Tool1 -> 获取结果
 ↓
选择工具 -> 调用Tool2 -> 获取结果
 ↓
整合结果 -> 生成最终回答

MCP +Agent

MCP(Model Context Protocol,模型上下文协议),2024 年 11 月底,由Anthropic 推出的一种开放标准,旨在统一大型语言模型(LLM)与外部数据源和工具之间的通信协议。

Function Calling 是 AI 模型调用函数的机制,MCP 是一个标准协议,使 AI 模型与 API无缝交互,而 AI Agent 是一个自主运行的智能系统,利用 Function Calling 和 MCP 来分析和执行任务,实现特定目标。

MCP 与 Function Calling 的区别

类别 MCP (Model Context Protocol) Function Calling
性质 协议 功能
范围 通用(多数据源、多功能) 特定场景(单一数据源或功能)
目标 统一接口,实现互操作 扩展模型能力
实现 基于标准协议 依赖于特定模型实现
开发复杂度 低:通过统一协议实现多源兼容 高:需要为每个任务单独开发函数
复用性 高:一次开发,可多场景使用 低:函数通常为特定任务设计
灵活性 高:支持动态适配和扩展 低:功能扩展需要额外开发

![[mcp通信.excalidraw]]

MCP 工作原理

MGP 协议采用了一种独特的架构设计,它将 LLM 与资源之间的通信划分为三个主要部分:客户端、服务嚣和资源

客户端负责发送请求给 MCP 服务器,服务器则将这些请求转发给相应的资源。这种分层的设计使得 MCP 协议能够更好地控制访问权限,确保只有经过授权的用户才能访问特定的资源。

以下是 MCP 的基本工作流程

MCP 通信机制

MCP 协议支持三种主要的通信机制:

  1. 基于标准输入输出的本地通信(stdio);
  2. 基于 SSE (Server-Sent Events)的远程通信。是一种基于 HTTP 协议的单向通信协议,允许服务器以事件流的形式实时向客户端推送数据,而无需客户端明确请求。MCP 中的 SSE Transport 结合了 SSE 技术和HTTP POST
  3. Streamable:HTTP 是 MCP 协议推荐的下一代传输机制(3 月 26 日),基于标准 HTTP 协议实现动态流式升级的传输方式,它移除了专用 SSE 端点,所有消泉通过端点传输,服务器可根据需要将普通 HTTP 请求升级为 SSE 流,支持流式响应。

HTTP + SSE 的缺陷
远程 MCP 通过 HTTP •SSE的传输方式工作,存在以下问题,这也是它所被皆换的根本原因:
• 不支持恢复连接
如果客户端和服务器之间的 SSE 连接中断了,就无法“从端点继续”,只能重新开始新的连接,之前的上下文可能会丢失。
• 要求服务器保持高可用的长连接
服务器必须一直保持一个稳定、不中断的SSE 长连接,否则通信就中断。
• 服务器只能通过 SSE 发送消息
服务器无法在已有的请求之外,主动地发送消息给客户端,除了通过专门的/sse 通道。换句话说,它是“单向被动响应”,而不是“任意时机推送“”

FastMCP :构建模型上下文协议(MCP)服务器的快速 Python 方案

Python 开发 MCP 服务:FastMCP

它提供了一种简单且高效的方法来构建 MCP 服务器,为开发者提供强大的工具和资源,从而帮助他们为 LLMs 提供上下文信息。

FastMCP 的主要特性: